// 标签：链表
// 当字符串数组长度为 0 时则公共前缀为空，直接返回
// 令最长公共前缀 ans 的值为第一个字符串，进行初始化
// 遍历后面的字符串，依次将其与 ans 进行比较，两两找出公共前缀，最终结果即为最长公共前缀
// 如果查找过程中出现了 ans 为空的情况，则公共前缀不存在直接返回
// 时间复杂度：O(s)O(s)，s 为所有字符串的长度之和

var longestCommonPrefix = function(strs) {
    if(strs.length == 0) 
        return "";
    let ans = strs[0];
    for(let i =1;i<strs.length;i++) {
        let j=0;
        for(;j<ans.length && j < strs[i].length;j++) {
            if(ans[j] != strs[i][j])
                break;
        }
        ans = ans.substr(0, j);
        if(ans === "")
            return ans;
    }
    return ans;
};
let arr = ['ooflower','ooflop','ooflowoe']
console.log(longestCommonPrefix(arr))

var longestCommonPrefix2 = function(strs) {
    strs.sort()//按编码排序
    console.log(strs)
    if (strs.length === 0) return ''//空数组返回''
    var first = strs[0],
        end = strs[strs.length - 1]
        console.log(end.match(eval('/^' + first + '/')),'?????????')
    if(first === end || end.match(eval('/^' + first + '/'))){
        console.log(11111111111)
        return first//first包含于end返回first
    }
    for(var i=0;i<first.length;i++){
        if(first[i] !== end[i]){
            return first.substring(0,i)//匹配失败时返回相应字符串
        }
    }
}

console.log(longestCommonPrefix2(arr))